package neca.tmazo.modelo;

import neca.tmazo.datasets.Album;
import neca.tmazo.datasets.Dataset;
import neca.tmazo.datasets.Music;
import neca.tmazo.datasets.Song;
import neca.tmazo.vista.WindowItems;

/**
 * @author neca
 * 
 * Ventana de resultados de busqueda (Se encargara de gestionar y ordenar que se muestren los resultados de una busqueda)
 *
 */
public class VentanaModeloResultados extends VentanaModelo {

	private Music[] resultList;
	
	public VentanaModeloResultados(Aplicacion app, Music[] searchResults) {
		super(app);
		this.resultList = searchResults;
	}

	@Override
	public void onMenuItemSelected(int label, Dataset args) {
		switch (label) {
		case WindowItems.RESULTADOS_BOTON_ATRAS:
			// Al ir atras desde resultados volvemos siempre a la ventana de busqueda, no importa la pila.
			VentanaModeloBuscar ventanaBuscar = new VentanaModeloBuscar(this.app);
			this.app.setCurrentWindow(ventanaBuscar);
			break;

		case WindowItems.RESULTADOS_BOTON_MUSICA:
			Music piezaSeleccionada = resultList[Integer.valueOf(args.get(WindowItems.RESULTADOS_FORMULARIO_INDICEMUSICASELECCIONADA))];
			this.app.getPila().push(this); //Apilamos en pila para que al ir atras se vuelva aqui
			
			if (piezaSeleccionada instanceof Album) {
				// Es un album
				VentanaModeloAlbum ventanaAlbum = new VentanaModeloAlbum(this.app, (Album) piezaSeleccionada);
				this.app.setCurrentWindow(ventanaAlbum);
			} else {
				// Es una cancion
				VentanaModeloCancion ventanaCancion = new VentanaModeloCancion(this.app, (Song) piezaSeleccionada);
				this.app.setCurrentWindow(ventanaCancion);
			}
			break;
		}
	}
	
	@Override
	public void init() {
		this.app.getVistaFacade().openWindowResultados(this, resultList);
	}

	@Override
	public void close() {
		// TODO Auto-generated method stub
		
	}

}
